using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;

using Kypris2.CoreElements;
using Jamila2.CoreElements;
using Jamila2.Tools;

namespace GonzalesCore.CoreElements
{
    public class ChangeStatus : ElementBase
    {
        public string ClaimID = "";
        public string remark = "";
        public new GonzalesClaimHeader.TypeOfClaimStatus changeOriginStatus = GonzalesClaimHeader.TypeOfClaimStatus.New;
        public new GonzalesClaimHeader.TypeOfClaimStatus changeToStatus = GonzalesClaimHeader.TypeOfClaimStatus.New;
        public DateTime ChangeDate = DateTime.MinValue;
        public SystemUser ChangeBy = null;


        public ChangeStatus()
            : base()
        {
            this.internal_id = SwissArmy.UniqueID();
        }

        public ChangeStatus(string InternalID, string remark)
            : base(InternalID)
        {
       
        }
    }


    public class ChangeStatusItems : CollectionBase
    {

        public ChangeStatus this[int index]
        {
            get
            {
                return ((ChangeStatus)List[index]);
            }
            set
            {
                List[index] = value;
            }
        }

        public int Add(ChangeStatus value)
        {
            return (List.Add(value));
        }

        public int IndexOf(ChangeStatus value)
        {
            return (List.IndexOf(value));
        }

        public void Insert(int index, ChangeStatus value)
        {
            List.Insert(index, value);
        }

        public void Remove(ChangeStatus value)
        {
            List.Remove(value);
        }

        public bool Contains(ChangeStatus value)
        {
            // If value is not of type Int16, this will return false.
            return (List.Contains(value));
        }
    
    }
}
